package com.freight.user.service;

import com.freight.core.base.FreightBaseService;
import com.freight.core.common.vo.SearchVo;
import com.freight.user.dto.UserLoginDto;
import com.freight.user.entity.UserLogin;
import com.freight.user.vo.UserAdminVo;
import com.freight.user.vo.UserInfoVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.HashMap;
import java.util.List;

/**
 * 预约订单接口
 * @author huyingtai
 */
public interface UserLoginService extends FreightBaseService<UserLogin, Long> {

    /**
    * 多条件分页获取
    * @param userLogin
    * @param searchVo
    * @param pageable
    * @return
    */
    Page<UserLogin> findByCondition(UserLogin userLogin, SearchVo searchVo, Pageable pageable);

    /**
     * 多条件分页获取
     * @param userIds
     * @return
     */
    List<UserLogin> findByUserIds(List<Long> userIds);

    /**
     * 多条件分页获取
     * @param userIds
     * @return
     */
    HashMap<Long,UserLogin> findMapByUserIds(List<Long> userIds);

    /**
     *
     * @param userLoginDto
     */
    void updateUserLogin(UserLoginDto userLoginDto);

    UserInfoVo getUserInfoVo();

    String updateRegistStatus(Long userId,Integer registState,String reason);

    UserAdminVo getAdminInfo();

    void cancellationUser(Long userId);

}